﻿using System;
using System.Web;
using Zadani09.util;

namespace Zadani09.filter
{
    public class UmelecHttpModule : IHttpModule
    {
        public void Dispose()
        {
            // XXX potreba neco implementovat? nekdy to kvuli toho vyhodi exceptionu
            // throw new NotImplementedException();
        }

        public void Init(HttpApplication context)
        {
              // zpracovani pristupovych prav
            context.AcquireRequestState += new EventHandler(context_AcquireRequestState);
        }

          /* pristupove prava se musi zpracovavat az na urovni
           * AcquireRequestState, protoze do te doby neni znam
           * obsah Session */
        void context_AcquireRequestState(object sender, EventArgs e)
        {
            HttpContext kontext = HttpContext.Current;

              // plati pouze pro podadresar admin/ (FIX ME - bezpecne, nejde lepe?)
            if (kontext.Request.Url.Segments[kontext.Request.Url.Segments.Length - 2]
                    == "umelec/")
            {
                Object obj = HttpContext.Current.Session[Constants.PRIHLASENY_UMELEC];

                  // overime pristupove prava a pripadne presmerujeme
                if (obj == null)
                {
                    kontext.Items.Add("popis", "Neoprávněný přístup");
                    kontext.Server.Transfer("~/Chyba.aspx");
                }
            }
        }
    }
}
